#ifndef _STR_API_H_
#define _STR_API_H_


#ifdef __cplusplus
extern "C"
{
#endif


/**
 * 查找字符串中符合目标字符集的第一个字符位置
 * @param *str  待查找的字符串
 * @param *charset  目标字符集
 * @param max_len   最大查找长度
 * @param *out_char 输出目标字符
 * @return >= 0: 目标字符位置
 *        -1: 未找到
 * @note:xxxxx
 */
int StrFindChar(const char *str, const char *charset, int max_len);



/**
 * 字符串转数字值
 * @param *in_str       字符串
 * @param in_str_len    字符串长度
 * @param *out_val      输出值
 * @return 消耗字符串长度
 * @note:xxxxx
 */
int StrToUInt32(const char *in_str, int in_str_len, unsigned int *out_val);


/**
 * 字符串比较
 * @param *str1 字符串1
 * @param *str2 字符串2
 * @return True 相同
 *         False 不相同
 */
int StrCmp(const char *str1, const char *str2);

/**
 * 单字节转换为Hex字符串
 * @param data  单字节数据
 * @param buff  输出缓冲区
 * @return == 0: 转换失败
 *        != 0: 转换成功
 */
char *UInt8ToHexStr(unsigned char data, char buff[3]);



/**
 * Hex字符串 转成Bytes数组
 * @param *hex_str
 * @param *buff
 * @param buff_size
 * @return >=0 转换成功消耗字符串长度
 * @note:xxxxx
 */
int StrHexToBytes(const char *hex_str, char *buff, int buff_size);



#ifdef __cplusplus
}  ///< extern "C"
#endif

#endif  ///< _STR_API_H_

 